table of contents
qbipcc.h(3) | libqb | qbipcc.h(3) |
NAME¶
qbipcc.h - Client IPC API.
SYNOPSIS¶
#include <sys/types.h>
#include <sys/uio.h>
#include <qb/qbipc_common.h>
Typedefs¶
typedef struct qb_ipcc_connection qb_ipcc_connection_t
Functions¶
qb_ipcc_connection_t * qb_ipcc_connect (const char
*name, size_t max_msg_size)
Create a connection to an IPC service. int32_t
qb_ipcc_verify_dgram_max_msg_size (size_t max_msg_size)
Test kernel dgram socket buffers to verify the largest size up to the
max_msg_size value a single msg can be. void qb_ipcc_disconnect
(qb_ipcc_connection_t *c)
Disconnect an IPC connection. int32_t qb_ipcc_fd_get
(qb_ipcc_connection_t *c, int32_t *fd)
Get the file descriptor to poll. int32_t qb_ipcc_fc_enable_max_set
(qb_ipcc_connection_t *c, uint32_t max)
Set the maximum allowable flowcontrol value. ssize_t qb_ipcc_send
(qb_ipcc_connection_t *c, const void *msg_ptr, size_t msg_len)
Send a message. ssize_t qb_ipcc_sendv (qb_ipcc_connection_t *c,
const struct iovec *iov, size_t iov_len)
Send a message (iovec). ssize_t qb_ipcc_recv
(qb_ipcc_connection_t *c, void *msg_ptr, size_t msg_len, int32_t
ms_timeout)
Receive a response. ssize_t qb_ipcc_sendv_recv
(qb_ipcc_connection_t *c, const struct iovec *iov, uint32_t iov_len,
void *msg_ptr, size_t msg_len, int32_t ms_timeout)
This is a convenience function that simply sends and then recvs. ssize_t
qb_ipcc_event_recv (qb_ipcc_connection_t *c, void *msg_ptr,
size_t msg_len, int32_t ms_timeout)
Receive an event. void qb_ipcc_context_set (qb_ipcc_connection_t
*c, void *context)
Associate a 'user' pointer with this connection. void *
qb_ipcc_context_get (qb_ipcc_connection_t *c)
Get the context (set previously) int32_t qb_ipcc_is_connected
(qb_ipcc_connection_t *c)
Is the connection connected? int32_t qb_ipcc_get_buffer_size
(qb_ipcc_connection_t *c)
What is the actual buffer size used after the connection.
Detailed Description¶
Client IPC API.
Lifecycle of an IPC connection.
Synchronous communication
Asynchronous requests from the client
Asynchronous events from the server
Typedef Documentation¶
typedef struct qb_ipcc_connection qb_ipcc_connection_t¶
Function Documentation¶
qb_ipcc_connection_t* qb_ipcc_connect (const char * name, size_t max_msg_size)¶
Create a connection to an IPC service.
Parameters:
max_msg_size biggest msg size.
Returns:
Note:
void* qb_ipcc_context_get (qb_ipcc_connection_t * c)¶
Get the context (set previously)
Parameters:
Returns:
See also:
void qb_ipcc_context_set (qb_ipcc_connection_t * c, void * context)¶
Associate a 'user' pointer with this connection.
Parameters:
c connection instance
See also:
void qb_ipcc_disconnect (qb_ipcc_connection_t * c)¶
Disconnect an IPC connection.
Parameters:
ssize_t qb_ipcc_event_recv (qb_ipcc_connection_t * c, void * msg_ptr, size_t msg_len, int32_t ms_timeout)¶
Receive an event.
Parameters:
msg_ptr pointer to a message buffer to receive into
msg_len the size of the buffer
ms_timeout time in milli seconds to wait for a message 0 == no wait, negative == block, positive == wait X ms.
ms_timeout max time to wait for a response
Returns:
Note:
int32_t qb_ipcc_fc_enable_max_set (qb_ipcc_connection_t * c, uint32_t max)¶
Set the maximum allowable flowcontrol value.
Note:
Parameters:
max the max allowable flowcontrol value (1 or 2)
int32_t qb_ipcc_fd_get (qb_ipcc_connection_t * c, int32_t * fd)¶
Get the file descriptor to poll.
Parameters:
fd (out) file descriptor to poll
int32_t qb_ipcc_get_buffer_size (qb_ipcc_connection_t * c)¶
What is the actual buffer size used after the connection.
Note:
Parameters:
Return values:
int32_t qb_ipcc_is_connected (qb_ipcc_connection_t * c)¶
Is the connection connected?
Parameters:
Return values:
QB_FALSE when not connected
ssize_t qb_ipcc_recv (qb_ipcc_connection_t * c, void * msg_ptr, size_t msg_len, int32_t ms_timeout)¶
Receive a response.
Parameters:
msg_ptr pointer to a message buffer to receive into
msg_len the size of the buffer
ms_timeout max time to wait for a response
Returns:
Note:
ssize_t qb_ipcc_send (qb_ipcc_connection_t * c, const void * msg_ptr, size_t msg_len)¶
Send a message.
Parameters:
msg_ptr pointer to a message to send
msg_len the size of the message
Returns:
Note:
ssize_t qb_ipcc_sendv (qb_ipcc_connection_t * c, const struct iovec * iov, size_t iov_len)¶
Send a message (iovec).
Parameters:
iov pointer to an iovec struct to send
iov_len the number of iovecs used
Returns:
Note:
ssize_t qb_ipcc_sendv_recv (qb_ipcc_connection_t * c, const struct iovec * iov, uint32_t iov_len, void * msg_ptr, size_t msg_len, int32_t ms_timeout)¶
This is a convenience function that simply sends and then recvs.
Parameters:
iov pointer to an iovec struct to send
iov_len the number of iovecs used
msg_ptr pointer to a message buffer to receive into
msg_len the size of the buffer
ms_timeout max time to wait for a response
Note:
that msg_ptr will include a qb_ipc_response_header at the top of the message.
See also:
int32_t qb_ipcc_verify_dgram_max_msg_size (size_t max_msg_size)¶
Test kernel dgram socket buffers to verify the largest size up to the max_msg_size value a single msg can be. Rounds down to the nearest 1k.
Parameters:
Returns:
Author¶
Generated automatically by Doxygen for libqb from the source code.
Fri Jan 13 2023 | Version 1.0.3 |